Hardware-Based Credential Distribution

ABSTRACT

This document describes various techniques for distributing credentials based on hardware profiles. A resource access request including a hardware profile is transmitted to a remote entity having access to a previous hardware profile and a credential useful to access a resource is received if at least a portion of the hardware profile matches the previous hardware profile.

BACKGROUND

Credentials allow a service to authenticate a client before providingresources or sharing data with the client. Services usually distributeverifiable credentials to clients to allow the client to access theresources or data over a network. Credentials are not infinite, however,and should only be distributed to actual users of the service. Arbitrarydistribution of credentials can result in exploitation or interruptionsof services, such as denial of service attacks by malicious entities.

To limit distribution of credentials many services rely onhuman-verification methods. These human-verification methods use logins,passwords, and/or challenge response tests to verify the client'sidentity when a service is accessed. While these human-verificationmethods help to limit credential distribution to clients associated withhuman users, they compromise a user's computing experience.

SUMMARY

This document describes various techniques for distributing credentialsbased on hardware profiles. These techniques may validate a request fora resource by matching a hardware profile of the requesting entity to aprevious hardware profile associated with that requesting entity. Oncevalidated, the techniques distribute a credential for accessing theresource. By so doing, the techniques protect the resource fromexploitation or attack without compromising a user's computingexperience.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key or essentialfeatures of the claimed subject matter, nor is it intended to be used asan aid in determining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference number in different instances in thedescription and the figures may indicate similar or identical items.

FIG. 1 illustrates an example environment in which these techniques maybe performed.

FIG. 2 illustrates an example computing device of FIG. 1 in more detail.

FIG. 3 is a flow diagram depicting an example process for accessing aresource with a credential distributed based on a hardware profile.

FIG. 4 is a flow diagram depicting an example process for distributing acredential based on a hardware profile.

FIG. 5 is a flow diagram depicting an example process for grantingaccess to a resource based on an indication of a validity of a request.

DETAILED DESCRIPTION

Overview

This document describes various techniques for distributing credentialsbased on hardware profiles. These techniques can improve a user'scomputing experience by forgoing a login, password, and/or responsechallenge, though these techniques can be used in conjunction withhuman-verification methods for additional security.

Example Environment

FIG. 1 is an illustration of an example environment 100 having acomputing device 102, server 104, and communication network 106, throughwhich computing device 102 and server 104 may communicate. Generally,computing device 102 requests access to a resource of server 104 throughcommunication network 106. In some embodiments, a secure communicationchannel is established between computing device 102 and server 104 overcommunication network 106 for providing resources and/or exchangingtrusted data.

Computing device 102 can be any device capable of communicating over anetwork (e.g., communication network 106), accessing resources of aservice, and exchanging trusted data. Computing device 102 isillustrated, by way of example and not limitation, as one of asmartphone 108, a laptop computer 110, set-top box 112, desktop computer114, or tablet computer 116. Communication network 106 may include anysuitable network such as the Internet, a local-area network, a wide-areanetwork, a wireless-network, a personal-area network, a dial-up network,and/or a USB bus, to name a few.

Server 104 can be any computing device having resources and/or hosting aservice for managing the resources, such as objects, data,functionalities, and the like. The service of server 104 requiresauthentication of a client before sharing a resource with the clientrequesting access to the resource. In some cases, authentication may bedirect with computing device 102 or brokered through a third partyassociated with both server 104 and computing device 102 (not shown). Aresource of server 104 is typically referenced by a Uniform ResourceLocator (URL) or Universal Resource Identifier (URI). A URL or URI isused by a client, such as computing device 102, for initiating access ofthe resource. In other cases, a resource may be referenced by anabstract domain in extensible markup language (XML) such as a namespace.

FIG. 2 illustrates an example computing device 102 of FIG. 1 in moredetail. Computing device 102 includes processor(s) 202,computer-readable media (CRM) 204, and network interface 206. Networkinterface 206 allows computing device 102 to communicate overcommunication network 106 and may include a unique media access control(MAC) address (not shown). Computer-readable media 204 contains memorymedia 208, storage media 210, and resource access manager 212, which isdescribed as part of the processes discussed below.

Memory media 208 can include dynamic random access memory (DRAM) 214,static random access memory (SRAM) 216, read-only memory (ROM) 218, orany combination thereof. Memory media 208 may be fixed or modular(flexibly configured) providing various configurations and/or capacitiesof memory for computing device 102. For instance, DRAM 214 may be useraccessible, allowing a user to increase an amount of DRAM 214 present incomputing device 102. Alternately or additionally, memory media 208 mayinclude information relating a manufacturer, data rate, and/or capacityof memory device(s) of computing device 102. In some instances, DRAM 214includes a serial presence detect integrated circuit (not shown)presenting information relating to a data rate and capacity of DRAM 214.

Storage media 210 can include hard disk drive (HDD) 220 and/or flash222. Storage media 210 is internal and/or external (but local)computer-readable storage media and is capable of storing data. Harddisk drive 220 or flash 222 can be configured as individual storagevolumes or as multiple drives of a redundant array of independent disks(RAID) volume. Alternately or additionally, storage media 210 caninclude information relating to a manufacturer, model number, serialnumber, and/or a capacity of a particular storage media device. Forinstance, hard disk drive 220 may include a model number, serial number,and capacity information detectable by a host device or a component of ahost device.

Generally, any of the techniques and abilities described herein can beimplemented using software, firmware, hardware (e.g., fixed-logiccircuitry), manual processing, or any suitable combination of theseimplementations. The example computing device 102 generally representssoftware, firmware, hardware, or any combination thereof. In the case ofa software implementation, for instance, resource access manager 212represents computer-executable instructions (e.g., program code) thatperform specific tasks when executed on a processor (e.g., CPU or CPUs).The program code can be stored in one or more computer-readable mediadevices, such as memory media 208 and/or storage media 210. The featuresand techniques described herein are platform-independent, meaning thatthey may be implemented on a variety of commercial computing platformshaving a variety of processors.

Example Processes

The following discussion describes techniques for distributingcredentials based on hardware profiles. These techniques can be usedinstead of or in addition to human-verification methods. When used inaddition to human-verification methods, these techniques provideadditional security for credential distribution. When used instead ofhuman-verification methods, these techniques forgo often-annoying ortime-consuming user-dependent activities.

By way of example, assume computing device 102 transmits a resourceaccess request including a unique identifier and a current hardwareprofile to server 104 over communication network 106. Server 104receives the unique identifier and hardware profile, determines whetheror not the hardware profile matches at least a portion of a storedhardware profile associated with the unique identifier, and, if itmatches, sends a credential useful to access a resource to computingdevice 102.

Aspects of these processes may be implemented in hardware, firmware,software, or a combination thereof. These processes are shown as sets ofblocks that specify operations performed, such as through one or moreentities or devices, and are not necessarily limited to the order shownfor performing the operations by the respective blocks. In portions ofthe following discussion reference may be made to environment 100 ofFIG. 1 as well as entities of environment 100 illustrated in FIG. 2.

FIG. 3 is a flow diagram depicting an example process 300 for accessinga resource with a credential distributed based on hardware profiles.Block 302 transmits a resource access request including a uniqueidentifier and a current hardware profile to a remote entity. In somecases, the resource access request is just the unique identifier and thecurrent hardware profile. The remote entity has access (locally,remotely, or via proxy) to a previous hardware profile associated withthe unique identifier. In some instances, the unique identifier isassociated with the previous hardware profile during a past attempt toaccess a resource or during a secure registration process.

The current hardware profile includes information relating to hardwarecomponents or a hardware configuration of a computing device. Thisprofile can be generated by an application programming interface (API)based on information relating to hardware of a computing device, such asserial numbers, model numbers, and/or parameters of hardware componentsof the computing device.

The unique identifier is any certificate, token, identification data, orcombination thereof that uniquely identifies a computing device. In somecases, the unique identifier is digitally signed or encrypted with aprivate key and/or shared key to ensure authenticity. This uniqueidentifier may be received during a secure registration process thatassociates the unique identifier with a hardware profile. For instance,the unique identifier may be a software license validation (SLV)certificate received during secure registration with an SLV server.During this secure registration, a hardware profile sent to the SLVserver is associated with the SLV certificate.

By way of example, consider process 300 in the context of environment100. Resource access manager 212 generates a current hardware profile oflaptop computer 110 based on information relating to DRAM 214, HDD 220,and Network Interface 206. This current hardware profile includesinformation relating to a manufacturer and a capacity (or amount) ofDRAM 214, a serial number and model number of HDD 220, and a MAC addressof network interface 206.

Here assume that resource access manager 212 is attempting to access asoftware update of server 104. To do so, resource access manager 212transmits a resource access request including a unique identifier andthe current hardware profile to server 104 over communication network106.

Block 304 receives a credential useful to access a resource from theremote entity if the current hardware profile matches at least a portionof the previous hardware profile. The credential is useful to access aresource directly or access a service managing resources,functionalities, and/or data. In the context of the present example,assume that the manufacturer and capacity (or amount) of DRAM 214 andthe MAC address of network interface 206 of the current hardware profilematch corresponding information of a previous hardware profileassociated with the certificate. Resource access manager 212 receives,from server 104, a credential useful to access the software updateresource responsive to a portion of the current hardware profile matchesthe previous hardware profile.

Optionally, at block 306, a resource is accessed using the receivedcredential. The resource may be accessed directly or through a servicemanaging the resource and/or data. In some cases, the resource is afunctionality provided by the service, such as messaging, synchronizingdata, or trusted data exchange. Concluding the present example, resourceaccess manager 212 accesses the software update resource of server 104using the received credential and downloads a software update overcommunication network 106.

FIG. 4 is a flow diagram depicting an example process 400 fordistributing a credential useful to access a resource based on hardwareprofiles. Block 402 receives a resource access request including aunique identifier and a hardware profile. The unique identifier may beany of those noted above, such as a certificate, token, oridentification data or combination thereof that uniquely identifies aremote entity. In some cases, the unique identifier is digitally signedor encrypted with a private key unknown to the remote entity to preventtampering and/or alteration of the unique identifier. For instance, theunique identifier may be an SLV certificate encrypted with a private keyknown to an SLV server which issued the certificate.

The hardware profile contains information relating to the remoteentity's hardware, such as a collection of serial numbers, modelnumbers, and/or parameters of hardware components. For instance, thehardware profile can include information about a manufacturer, modelnumber, serial number and a capacity of a hard disk drive.

Consider process 400 in the context of the above-mentioned example. Hereserver 104 receives a resource access request from resource accessmanager 212 of laptop computer 110 through data communication network106. The resource access request includes a hardware profile of laptopcomputer 110 and a unique identifier in the form of certificateencrypted with a private key known to server 104. The hardware profileof laptop computer 110 includes information relating to a manufacturerand a capacity (or amount) of DRAM 214, a serial number and model numberof HDD 220, and a MAC address of network interface 206.

Block 404 determines that the hardware profile matches at least aportion of a stored hardware profile associated with the uniqueidentifier. The stored hardware profile may be stored during a secureregistration or license validation process. For instance, a hardwareprofile received during an SLV process may be stored and associated withan SLV certificate.

In some cases, all of the information contained in the hardware profilematches the information contained in the stored hardware profileassociated with the unique identifier. In other cases, where only aportion of the hardware profile matches the stored hardware profile,fuzzy-logic may be employed to determine that the hardware profilesufficiently, but not entirely, matches the stored hardware profile.

A match can be determined using fuzzy-logic even though informationrelating to a HDD of the hardware profile does not match informationrelating to a HDD of the stored hardware profile. A matching algorithmemploying fuzzy-logic provides flexible matching, allowing a match to bedetermined for a computing device that has new and/or different hardwarecomponents due to repairs and/or upgrades.

This matching algorithm, for example, may determine that the hardwareprofile is sufficiently similar when two of three hardware componentparameters match. The matching algorithm may determine a sufficientmatch based on various criteria, such as serial numbers that areunlikely to change, while other non-matching serial numbers areacceptable for hardware often altered or replaced, such as external harddrives or non-integrated displays, but not motherboards or processors.

Continuing the ongoing example, server 104 decrypts the certificateusing a private key to identify laptop computer 110. Server 104 thendetermines that at least a portion of the hardware profile of laptopcomputer 110 matches a stored profile that is associated with thecertificate included in the resource access request. Here assume that auser of laptop computer 110 has replaced HDD 220 of laptop computer 110due to a failure of a previous HDD.

In the context of the present example, a matching algorithm of server104 employing fuzzy-logic determines that the hardware profile of laptopcomputer 110 sufficiently matches the stored hardware profile based onthe information relating to the manufacturer and the capacity (oramount) of DRAM 214 and the MAC address of network interface 206.

Block 406 transmits a credential to the remote entity useful to access aresource. The credential may be useful to access a resource directly oraccess a service managing the resource and/or providing functionalityrelated to the resource. In some cases, a credential distribution limitor rule is consulted prior to transmitting the credential limitingdistribution of credentials. In some instances, the credentialdistribution limit is associated with the unique identifier to limitcredential distribution to an entity (or entities claiming to be)associated with the unique identifier.

Credential distribution can be limited to a total number of credentialsdistributed, a rate of credential distribution, or a frequency ofcredential distribution or any combination thereof. For instance,credential limits associated with a unique identifier may only allow onecredential to be distributed every 10 seconds with a total limit of 50distributed credentials.

Continuing the present example, assume that server 104 has a credentialdistribution limit of 50 total credentials per unique identifier. Alsoassume that one credential has been previously issued in association tothe certificate included in the resource access request received fromlaptop computer 110. Here, server 104 consults the credentialdistribution limit and determines that a credential can be issued tolaptop computer 110. Concluding the present example, server 104increments a credential distribution count associated with the uniqueidentifier and transmits a credential useful to access a software updateto laptop computer 110 over communication network 106. This is but oneway in which the techniques may limit credential distribution tocomputing devices of actual users of a service.

FIG. 5 is a flow diagram depicting an example process 500 for grantingaccess to a resource. Block 502 receives a request for resource accessincluding a unique identifier and a hardware profile, such as thoseunique identifiers and hardware profiles mentioned above.

Consider process 500 in the context of environment 100. Here server 104receives a resource access request from resource access manager 212 oflaptop computer 110 over communication network 106. Assume that theresource access request includes a certificate encrypted with a privatekey and a hardware profile of laptop computer 110. Also assume thatserver 104 is hosting a software update service, and that resourceaccess manager 212 of laptop computer 110 is attempting to access thesoftware update service. In the context of the present example, server104 does not have a private key for decrypting the certificate includedin the resource access request.

Block 504 forwards the unique identifier and hardware profile to arequest-validating entity having access to a historical hardware profileassociated with the unique identifier. The historical hardware profileincludes information previously collected relating to hardwarecomponents or a hardware configuration of a computing device. In somecases, the historical hardware profile is received from a computingdevice during a secure registration process. In such a case, the uniqueidentifier may have been issued to the computing device and associatedwith the received hardware profile. For instance, the unique identifierand hardware profile may be forwarded to an SLV server having a storedhistorical profile associated with an SLV ticket encrypted with aprivate key.

The request-validating entity may also have access to a private and/orshared key useful to decrypt an encrypted unique identifier. In somecases, the request-validating entity decrypts a certificate, token, ordigital signature to expose information uniquely identifying a computingdevice, such as an SLV server having a private key decrypting andverifying an SLV ticket included in the request.

In the context of the present example server 104 forwards thecertificate encrypted with the private key and the hardware profile oflaptop 110 to a remote request-validation server (not shown). Here,assume that the request-validation server has a private key capable ofdecrypting the certificate and a historical hardware profile associatedwith the certificate.

Block 506 receives an indication of a validity of the request if therequest-validating entity determines that the hardware profile of theremote entity matches at least a portion of the historical hardwareprofile. This indication of validity may include identificationinformation relating to the remote entity, such as informationidentifying the remote entity as an owner of a software product or as asubscriber to a service. For instance, an indication of the validity ofthe request can be received from an SLV server when at least a portionof the hardware profile of the remote entity matches a historicalhardware profile associated with an SLV ticket.

Continuing the present example, server 104 receives an indication of thevalidity of the request when the request-validation server determinesthat the hardware profile of laptop computer 110 matches at least aportion of the historical hardware profile associated with thecertificate. The indication of the validity of the request also includesidentification information that identifies laptop computer 110 as asubscriber of the software update service of server 104.

Block 508 grants access of the resource to the remote entity based onthe indication of the validity of the request. In some cases, acredential useful to access the resource is transmitted to the remoteentity. The credential is useful to access a resource directly or accessa service managing the resource and/or providing functionality relatedto the resource. Furthermore, access to the resource may be limited ordenied based on identification information relating to the remoteentity. For example, access may be limited to updates of a particularsoftware product based on information that identifies the remote entityas an owner of that software product.

Concluding the present example, server 104 grants access of the softwareupdate service to laptop computer 110 based on the validity of therequest. The access granted is limited by server 104 based on theidentification information that identifies laptop computer 110 as asubscriber to that service.

CONCLUSION

This document describes various techniques for distributing credentialsbased on hardware profiles. By so doing, these techniques improvesecurity and/or a computing experience of a user accessing a resourcevia a service. Credentials useful for accessing a resource can beprovided to a user without querying the user for a login, password,and/or response challenge. Although the invention has been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the invention defined in the appended claims isnot necessarily limited to the specific features or acts described.Rather, the specific features and acts are disclosed as example forms ofimplementing the claimed invention.

What is claimed is:
 1. A computing device comprising: a networkinterface configured to communicate data over a network; one or moreprocessors; and a memory coupled to the one or more processors andincluding processor-executable instructions that, responsive toexecution by the one or more processors, implement a resource accessmanager to: transmit, via the network interface, a resource accessrequest to a remote entity, the resource access request including: aunique identifier of the computing device, the unique identifier of thecomputing device being generated in association with a secureregistration process prior to transmitting the resource access request;and a hardware profile of the computing device; and receive a credentialuseful to access a resource of the remote entity, via the networkinterface and responsive to: a determination that the hardware profilematches at least a portion of a previous hardware profile; and adetermination that a credential distribution frequency limit associatedwith the unique identifier has not been exceeded.
 2. The computingdevice as recited in claim 1, wherein the credential distributionfrequency limit is effective to limit a frequency at which the remoteentity distributes credentials associated with the unique identifier. 3.The computing device as recited in claim 1, wherein the credentialdistribution frequency limit is effective to limit credentialsdistributed in association with the unique identifier to one credentialper one interval of time.
 4. The computing device as recited in claim 1,wherein the hardware profile of the computing device comprises acollection of serial numbers, model numbers, or parameters of hardwarecomponents of the computing device.
 5. The computing device as recitedin claim 1, wherein the computing device is further implemented toreceive the unique identifier from the remote entity in association withthe secure registration process.
 6. The computing device as recited inclaim 1, wherein the unique identifier is a certificate that isdigitally signed or encrypted with a private key.
 7. The computingdevice as recited in claim 1, wherein the resource is a service providedby the remote entity or a resource server associated with the remoteentity.
 8. A method comprising: transmitting, via a network interface ofa computing device, a resource access request for a resource to a remoteentity, the resource access request including: a unique identifier ofthe computing device, the unique identifier of the computing devicebeing generated in association with a secure registration process priorto transmitting the resource access request; and a hardware profile ofthe computing device; receiving, via the network interface, a credentialuseful to access the resource responsive to: a determination that thehardware profile matches at least a portion of a stored hardware profileassociated with the unique identifier; and a determination that afrequency of credential distribution associated with the uniqueidentifier of the computing device does not exceed a credentialdistribution frequency limit associated with the unique identifier ofthe computing device.
 9. The method as recited in claim 8, wherein thecredential distribution frequency limit is effective to limit afrequency at which the remote entity distributes credentials associatedwith the unique identifier.
 10. The method as recited in claim 8,wherein the credential distribution frequency limit is effective tolimit credentials distributed in association with the unique identifierto one credential per one interval of time.
 11. The method as recited inclaim 8, wherein the hardware profile of the computing device includes acollection of serial numbers, model numbers, or parameters of hardwarecomponents of the computing device.
 12. The method as recited in claim8, wherein the unique identifier of the computing device is acertificate that is digitally signed or encrypted with a private key.13. The method as recited in claim 8, wherein the determination that thehardware profile matches at least a portion of a stored hardware profileassociated with the unique identifier employs a fuzzy-logic algorithm.14. The method as recited in claim 8, further comprising transmitting,to the remote entity, an initial hardware profile for storage as thestored hardware profile in association with the unique identifier. 15.One or more computer-readable storage devices comprisingprocessor-executable instructions that, responsive to execution by oneor more processors, cause a computing device to: transmit a resourceaccess request to a remote entity, the resource access request includinga unique identifier of the computing device and a hardware profile ofthe computing device; and receive, from the remote entity, a credentialuseful to access a resource of the remote entity responsive to: adetermination that the hardware profile matches at least a portion of astored hardware profile associated with the unique identifier; and adetermination that a credential distribution limit associated with theunique identifier of the computing device has not been exceeded, thecredential distribution limit limiting a total number of credentials tobe issued by the remote entity in association with the unique identityof the computing device.
 16. The one or more computer-readable storagedevices as recited in claim 15, wherein the credential distributionlimit is further based on a rate at which credentials are distributed inassociation with the unique identifier.
 17. The one or morecomputer-readable storage devices as recited in claim 15, wherein thehardware profile of the computing device includes a collection of serialnumbers, model numbers, or parameters of hardware components of thecomputing device.
 18. The one or more computer-readable storage devicesas recited in claim 15, wherein the resource is a software product or asoftware update and receiving the credential is effective to enable thecomputing device to access the software product or the software update.19. The one or more computer-readable storage devices as recited inclaim 15, wherein the credential distribution frequency limit iseffective to limit credentials distributed in association with theunique identifier to one credential per one interval of time.
 20. Theone or more computer-readable storage devices as recited in claim 15,wherein the computer device is further caused to transmit, to the remoteentity, an initial hardware profile for storage as the stored hardwareprofile in association with the unique identifier prior to transmittinga resource access request.